package model.prestamos;

import static org.junit.Assert.*;
import model.prestamos.seguroDeVida.PromedioEnCuotas;
import model.prestamos.seguroDeVida.SeguroDeVida;
import model.prestamos.seguroDeVida.SinSeguroDeVida;
import model.prestamos.seguroDeVida.TipoDeSeguroDeVida;
import model.prestamos.seguroDeVida.VariableReal;
import org.junit.Test;

/**
 * @author Lucas
 * Test suite de los seguros de vida
 */
public class SegurosDeVidaTest {

	private SeguroDeVida sinSeguro = new SeguroDeVida(new SinSeguroDeVida());
	private SeguroDeVida variableReal = new SeguroDeVida(new VariableReal());
	private SeguroDeVida promedioEnCuotas = new SeguroDeVida(new PromedioEnCuotas());
	
	@Test
	public void testGetTipoDeSeguroDeVidaSinSeguro(){
		TipoDeSeguroDeVida tipoSeguro = sinSeguro.getTipo();
		
		assertTrue(tipoSeguro.equals(new SinSeguroDeVida()));
		assertFalse(tipoSeguro.equals(new VariableReal()));
		assertFalse(tipoSeguro.equals(new PromedioEnCuotas()));
		assertTrue(sinSeguro.seCalculaPorCuota());
	}
	
	@Test
	public void testGetTipoDeSeguroDeVidaVariableReal(){
		TipoDeSeguroDeVida tipoSeguro = variableReal.getTipo();
		
		assertFalse(tipoSeguro.equals(new SinSeguroDeVida()));
		assertTrue(tipoSeguro.equals(new VariableReal()));
		assertFalse(tipoSeguro.equals(new PromedioEnCuotas()));
		assertTrue(variableReal.seCalculaPorCuota());
	}
	
	@Test
	public void testGetTipoDeSeguroDeVidaPromedioEnCuotas(){
		TipoDeSeguroDeVida tipoSeguro = promedioEnCuotas.getTipo();
		
		assertTrue(tipoSeguro.equals(new PromedioEnCuotas()));
		assertFalse(tipoSeguro.equals(new SinSeguroDeVida()));
		assertFalse(tipoSeguro.equals(new VariableReal()));
		assertFalse(promedioEnCuotas.seCalculaPorCuota());
	}
	
}



